// 知识点：这五种操作通常被视为一个整体，一般来说都会一起出现

// 知识点2：需要析构函数的类也需要拷贝和赋值操作，合成的析构函数不会delete一个指针数据成员，所以有时我们需要自己定义一个析构函数释放构造函数分配的内存，所以需要析构函数的类，也就需要拷贝构造函数和拷贝赋值运算符，而合成的拷贝构造函数和拷贝赋值运算符只能简单的拷贝指针成员，这就意味着多个对象指向同一个内存，释放多个对象时，造成多次delete

// 知识点3：如果一个类需要自定义版本的析构函数，那么肯定是需要自定义的拷贝构造函数和拷贝赋值运算符

// 知识点4：拷贝操作和复制操作是相互结合的，如果需要一种，也需要另一种，但不一定意味着需要析构函数

// 会输出三个一样的数字，合成的拷贝构造函数只是简单的进行拷贝